home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / c-lang / strmc105.lha / StormC-Demo / INCLUDE / clib / exec_protos.h < prev    next >
C/C++ Source or Header  |  1996-01-02  |  9KB  |  196 lines

  1. #ifndef  CLIB_EXEC_PROTOS_H
  2. #define  CLIB_EXEC_PROTOS_H
  3.  
  4. /*
  5. **    $VER: exec_protos.h 39.15 (1.10.93)
  6. **    Includes Release 40.15
  7. **
  8. **    C prototypes. For use with 32 bit integers only.
  9. **
  10. **    (C) Copyright 1990-1993 Commodore-Amiga, Inc.
  11. **        All Rights Reserved
  12. */
  13.  
  14. #ifndef  EXEC_TYPES_H
  15. #include <exec/types.h>
  16. #endif
  17. #ifndef  EXEC_TASKS_H
  18. #include <exec/tasks.h>
  19. #endif
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25. /*------ misc ---------------------------------------------------------*/
  26. ULONG Supervisor( unsigned long (*userFunction)() );
  27. /*------ special patchable hooks to internal exec activity ------------*/
  28. /*------ module creation ----------------------------------------------*/
  29. void InitCode( unsigned long startClass, unsigned long version );
  30. void InitStruct( APTR initTable, APTR memory, unsigned long size );
  31. struct Library *MakeLibrary( APTR funcInit, APTR structInit,
  32.     unsigned long (*libInit)(), unsigned long dataSize,
  33.     unsigned long segList );
  34. void MakeFunctions( APTR target, APTR functionArray,
  35.     unsigned long funcDispBase );
  36. struct Resident *FindResident( UBYTE *name );
  37. APTR InitResident( struct Resident *resident, unsigned long segList );
  38. /*------ diagnostics --------------------------------------------------*/
  39. void Alert( unsigned long alertNum );
  40. void Debug( unsigned long flags );
  41. /*------ interrupts ---------------------------------------------------*/
  42. void Disable( void );
  43. void Enable( void );
  44. void Forbid( void );
  45. void Permit( void );
  46. ULONG SetSR( unsigned long newSR, unsigned long mask );
  47. APTR SuperState( void );
  48. void UserState( APTR sysStack );
  49. struct Interrupt *SetIntVector( long intNumber, struct Interrupt *interrupt );
  50. void AddIntServer( long intNumber, struct Interrupt *interrupt );
  51. void RemIntServer( long intNumber, struct Interrupt *interrupt );
  52. void Cause( struct Interrupt *interrupt );
  53. /*------ memory allocation --------------------------------------------*/
  54. APTR Allocate( struct MemHeader *freeList, unsigned long byteSize );
  55. void Deallocate( struct MemHeader *freeList, APTR memoryBlock,
  56.     unsigned long byteSize );
  57. APTR AllocMem( unsigned long byteSize, unsigned long requirements );
  58. APTR AllocAbs( unsigned long byteSize, APTR location );
  59. void FreeMem( APTR memoryBlock, unsigned long byteSize );
  60. ULONG AvailMem( unsigned long requirements );
  61. struct MemList *AllocEntry( struct MemList *entry );
  62. void FreeEntry( struct MemList *entry );
  63. /*------ lists --------------------------------------------------------*/
  64. void Insert( struct List *list, struct Node *node, struct Node *pred );
  65. void AddHead( struct List *list, struct Node *node );
  66. void AddTail( struct List *list, struct Node *node );
  67. void Remove( struct Node *node );
  68. struct Node *RemHead( struct List *list );
  69. struct Node *RemTail( struct List *list );
  70. void Enqueue( struct List *list, struct Node *node );
  71. struct Node *FindName( struct List *list, UBYTE *name );
  72. /*------ tasks --------------------------------------------------------*/
  73. APTR AddTask( struct Task *task, APTR initPC, APTR finalPC );
  74. void RemTask( struct Task *task );
  75. struct Task *FindTask( UBYTE *name );
  76. BYTE SetTaskPri( struct Task *task, long priority );
  77. ULONG SetSignal( unsigned long newSignals, unsigned long signalSet );
  78. ULONG SetExcept( unsigned long newSignals, unsigned long signalSet );
  79. ULONG Wait( unsigned long signalSet );
  80. void Signal( struct Task *task, unsigned long signalSet );
  81. BYTE AllocSignal( long signalNum );
  82. void FreeSignal( long signalNum );
  83. LONG AllocTrap( long trapNum );
  84. void FreeTrap( long trapNum );
  85. /*------ messages -----------------------------------------------------*/
  86. void AddPort( struct MsgPort *port );
  87. void RemPort( struct MsgPort *port );
  88. void PutMsg( struct MsgPort *port, struct Message *message );
  89. struct Message *GetMsg( struct MsgPort *port );
  90. void ReplyMsg( struct Message *message );
  91. struct Message *WaitPort( struct MsgPort *port );
  92. struct MsgPort *FindPort( UBYTE *name );
  93. /*------ libraries ----------------------------------------------------*/
  94. void AddLibrary( struct Library *library );
  95. void RemLibrary( struct Library *library );
  96. struct Library *OldOpenLibrary( UBYTE *libName );
  97. void CloseLibrary( struct Library *library );
  98. APTR SetFunction( struct Library *library, long funcOffset,
  99.     unsigned long (*newFunction)() );
  100. void SumLibrary( struct Library *library );
  101. /*------ devices ------------------------------------------------------*/
  102. void AddDevice( struct Device *device );
  103. void RemDevice( struct Device *device );
  104. BYTE OpenDevice( UBYTE *devName, unsigned long unit,
  105.     struct IORequest *ioRequest, unsigned long flags );
  106. void CloseDevice( struct IORequest *ioRequest );
  107. BYTE DoIO( struct IORequest *ioRequest );
  108. void SendIO( struct IORequest *ioRequest );
  109. struct IORequest *CheckIO( struct IORequest *ioRequest );
  110. BYTE WaitIO( struct IORequest *ioRequest );
  111. void AbortIO( struct IORequest *ioRequest );
  112. /*------ resources ----------------------------------------------------*/
  113. void AddResource( APTR resource );
  114. void RemResource( APTR resource );
  115. APTR OpenResource( UBYTE *resName );
  116. /*------ private diagnostic support -----------------------------------*/
  117. /*------ misc ---------------------------------------------------------*/
  118. APTR RawDoFmt( UBYTE *formatString, APTR dataStream, void (*putChProc)(),
  119.     APTR putChData );
  120. ULONG GetCC( void );
  121. ULONG TypeOfMem( APTR address );
  122. ULONG Procure( struct SignalSemaphore *sigSem,
  123.     struct SemaphoreMessage *bidMsg );
  124. void Vacate( struct SignalSemaphore *sigSem,
  125.     struct SemaphoreMessage *bidMsg );
  126. struct Library *OpenLibrary( UBYTE *libName, unsigned long version );
  127. /*--- functions in V33 or higher (Release 1.2) ---*/
  128. /*------ signal semaphores (note funny registers)----------------------*/
  129. void InitSemaphore( struct SignalSemaphore *sigSem );
  130. void ObtainSemaphore( struct SignalSemaphore *sigSem );
  131. void ReleaseSemaphore( struct SignalSemaphore *sigSem );
  132. ULONG AttemptSemaphore( struct SignalSemaphore *sigSem );
  133. void ObtainSemaphoreList( struct List *sigSem );
  134. void ReleaseSemaphoreList( struct List *sigSem );
  135. struct SignalSemaphore *FindSemaphore( UBYTE *sigSem );
  136. void AddSemaphore( struct SignalSemaphore *sigSem );
  137. void RemSemaphore( struct SignalSemaphore *sigSem );
  138. /*------ kickmem support ----------------------------------------------*/
  139. ULONG SumKickData( void );
  140. /*------ more memory support ------------------------------------------*/
  141. void AddMemList( unsigned long size, unsigned long attributes, long pri,
  142.     APTR base, UBYTE *name );
  143. void CopyMem( APTR source, APTR dest, unsigned long size );
  144. void CopyMemQuick( APTR source, APTR dest, unsigned long size );
  145. /*------ cache --------------------------------------------------------*/
  146. /*--- functions in V36 or higher (Release 2.0) ---*/
  147. void CacheClearU( void );
  148. void CacheClearE( APTR address, unsigned long length, unsigned long caches );
  149. ULONG CacheControl( unsigned long cacheBits, unsigned long cacheMask );
  150. /*------ misc ---------------------------------------------------------*/
  151. APTR CreateIORequest( struct MsgPort *port, unsigned long size );
  152. void DeleteIORequest( APTR iorequest );
  153. struct MsgPort *CreateMsgPort( void );
  154. void DeleteMsgPort( struct MsgPort *port );
  155. void ObtainSemaphoreShared( struct SignalSemaphore *sigSem );
  156. /*------ even more memory support -------------------------------------*/
  157. APTR AllocVec( unsigned long byteSize, unsigned long requirements );
  158. void FreeVec( APTR memoryBlock );
  159. /*------ V39 Pool LVOs...*/
  160. APTR CreatePool( unsigned long requirements, unsigned long puddleSize,
  161.     unsigned long threshSize );
  162. void DeletePool( APTR poolHeader );
  163. APTR AllocPooled( APTR poolHeader, unsigned long memSize );
  164. void FreePooled( APTR poolHeader, APTR memory, unsigned long memSize );
  165. /*------ misc ---------------------------------------------------------*/
  166. ULONG AttemptSemaphoreShared( struct SignalSemaphore *sigSem );
  167. void ColdReboot( void );
  168. void StackSwap( struct StackSwapStruct *newStack );
  169. /*------ task trees ---------------------------------------------------*/
  170. void ChildFree( APTR tid );
  171. void ChildOrphan( APTR tid );
  172. void ChildStatus( APTR tid );
  173. void ChildWait( APTR tid );
  174. /*------ future expansion ---------------------------------------------*/
  175. APTR CachePreDMA( APTR address, ULONG *length, unsigned long flags );
  176. void CachePostDMA( APTR address, ULONG *length, unsigned long flags );
  177. /*------ New, for V39*/
  178. /*--- functions in V39 or higher (Release 3) ---*/
  179. /*------ Low memory handler functions*/
  180. void AddMemHandler( struct Interrupt *memhand );
  181. void RemMemHandler( struct Interrupt *memhand );
  182. /*------ Function to attempt to obtain a Quick Interrupt Vector...*/
  183. ULONG ObtainQuickVector( APTR interruptCode );
  184.  
  185. #ifdef __cplusplus
  186. }
  187. #endif
  188.  
  189. #ifdef STORMPRAGMAS
  190. #ifndef _INCLUDE_PRAGMA_EXEC_LIB_H
  191. #include <pragma/exec_lib.h>
  192. #endif
  193. #endif
  194.  
  195. #endif     /* CLIB_EXEC_PROTOS_H */
  196.